package org.example.service;

import org.example.dao.UserDao;
import org.example.dao.UserDaoByAnnotation;
import org.example.domain.User;
import org.example.orm.SqlSession;

import java.util.List;

/**
 * @author hsc
 * @date 2024-02-02
 * @Description
 */
public class UserService {

    //方式一：直接创建dao对象来实现数据的查询
//    UserDao userDao = new UserDao();

    //方式二：基于代理对象进行数据的查询，sql语句写在注解上
    private UserDaoByAnnotation userDao=new SqlSession().getMapper(UserDaoByAnnotation.class);


    /**
     * 添加用户的方法
     *
     * @param user 传递一个用户对象
     */
    public void registNewUser(User user) {
        userDao.insert(user);
    }

    /**
     * 删除用户的方法
     *
     * @param uid 用户id
     */
    public void deleteUser(int uid) {
        userDao.deleteUser(uid);
    }

    /**
     * 修改用户的方法
     * @param user 用户对象
     */
    public void updateUser(User user) {
        userDao.updateUser(user);
    }

    /**
     * 查询单条记录（根据用户id）
     * @param uid 用户id
     * @return
     */
    public User queryUser(int uid) {
        //方式一：查询一条数据
         return userDao.selectOne(uid);
        //方式二：查询一条数据
//        return userDao.selectOneNew(uid);

    }

    /**
     * 查询表格中全部user的数据
     * @return
     */
    public List<User> queryAll(){
        return  userDao.selectList();
    }

}
